"use strict";
exports.__esModule = true;
exports.a1 = void 0;
// 动物园 有两只猴子  猴子长得一样 ，动物园不一样
var Zoo;
(function (Zoo) {
    Zoo.monkey1 = "猴子"; // 相当于挂载到Zoo的上面
})(Zoo || (Zoo = {}));
(function (Zoo) {
    Zoo.monkey2 = "猴子";
})(Zoo || (Zoo = {}));
var A = /** @class */ (function () {
    function A() {
    }
    // 相当于是一个类的类型 类的类型 和 接口合并在了一起
    A.prototype.say = function () { };
    return A;
}());
var a = {
    // 类和接口可以合并
    a: "1",
    b: "2",
    say: function () { }
};
// 可以通过命名空间 给 类型加属性， 但是不要求必须填写
// 命名空间可以给类添加属性  (静态属性)
var AA;
(function (AA) {
})(AA || (AA = {}));
AA.xxx;
// 1.接口的合并 ， 可以继承
// 2.类和命名空间的合并
// 3.给全局合并属性  需要通过declare global扩展全局属性
// window.a;
// Number.prototype.myFixed = function () {};
// 4.通过cdn 可能引入了某个变量
// $().html;
// $().css("a", "b");
// $.fn.extend;
// 引入了个CDN jquery包，
// import $ from 'jquery'; // 这个jquery 是不存在 只是让代码看起来漂亮一点
// import xxx from 'a.vue';
// $.css();
// $.fn.extend
// moduleResolution是干嘛的  我调用import语法 文件怎么样去解析文件
// baseUrl 怎么查找路径 ./ 在当前项目下查找
// paths 我们引入文件 指定文件去哪里差早   paths:{'*':[]}
var a1 = '1';
exports.a1 = a1;
console.log(a1);
// 最后我们的项目 会打包 用ts写的代码 会被进行编译 -> js + 类型声明
// 我的代码要给别人来用，别人是不是要求你得有代码提示
// 找自己的配置里面有没有配置paths
// 查找方式 如果是第三方模块， 第三方模块肯定会在这个文件下有.d.ts 
// 这个第三方模块以前不是用ts来写的 那么他就会去@types下查找有没有
// vue -> vue-shim.d.ts 声明了一个配置 用于引入.vue 文件不会报错
// 查找如果本身就是直接用ts写的打包的时候 就会产生.d.ts    
// 对于vue来说 打包组件库项目的话 需要自己生产tsconfig
// react 没有特殊的 .vue 文件 打包起来容易些   jsx
